package com.example.springboot.service;

import com.example.springboot.common.vo.PermissionsMenu;
import com.example.springboot.common.vo.TreeMenu;
import com.example.springboot.entity.SysMenu;

import java.util.List;

/**
 * (SysMenu)表服务接口
 *
 * @author makejava
 * @since 2021-09-17 09:49:10
 */
public interface SysMenuService {

	/**
	 * 通过ID查询单条数据
	 *
	 * @param id 主键
	 * @return 实例对象
	 */
	SysMenu queryById(Long id);

	/**
	 * 查询多条数据
	 *
	 * @param offset 查询起始位置
	 * @param limit  查询条数
	 * @return 对象列表
	 */
	List<SysMenu> queryAllByLimit(int offset, int limit);

	/**
	 * 通过实体作为筛选条件查询
	 *
	 * @param sysMenu 实例对象
	 * @return 对象列表
	 */
	List<SysMenu> queryAll(SysMenu sysMenu);


	/**
	 * 通过实体作为筛选条件查询
	 *
	 * @return 对象列表
	 */
	List<TreeMenu> queryTreeMenu(Long id);


	List<TreeMenu> queryTreeRole(Long id);

	/**
	 * 通过实体作为筛选条件查询
	 *
	 * @return 对象列表
	 */
	List<PermissionsMenu> queryUserMenuById(Long id);

	/**
	 * 新增数据
	 *
	 * @param sysMenu 实例对象
	 * @return 实例对象
	 */
	SysMenu insert(SysMenu sysMenu);

	/**
	 * 修改数据
	 *
	 * @param sysMenu 实例对象
	 * @return 实例对象
	 */
	SysMenu update(SysMenu sysMenu);

	/**
	 * 通过主键删除数据
	 *
	 * @param id 主键
	 * @return 是否成功
	 */
	boolean deleteById(Long id);

}